package com.zntg.pdf;

import java.io.File;
import java.io.FileOutputStream;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;

public class TestWaterPrint {
    public static void main(String[] args) {
        try {
            addPdfMark("D:\\fundcrm\\doc\\优策月月盈3号份额确认书-（第一次申购模板）.pdf", "D:\\fundcrm\\doc\\xin.pdf", "D:\\fundcrm\\doc\\new_20181214114147.png", 1);
        } catch (Exception e) {
// TODO Auto-generated catch block
            System.out.println("失败。。。。");
            e.printStackTrace();
        }
        System.out.println("成功。");
    }

/** 
     * 给pdf文件添加水印 
     * @param InPdfFile 要加水印的原pdf文件路径 
     * @param outPdfFile 加了水印后要输出的路径 
     * @param markImagePath 水印图片路径 
     * @param pageSize 原pdf文件的总页数（该方法是我当初将数据导入excel中然后再转换成pdf所以我这里的值是用excel的行数计算出来的，如果不是我这种可以 直接用reader.getNumberOfPages()获取pdf的总页数） 
     * @throws Exception 
     */
public static void addPdfMark(String InPdfFile, String outPdfFile, String markImagePath, int pageSize) throws Exception {
     PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes());
    PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outPdfFile));
    Image img = Image.getInstance(markImagePath);// 插入水印   
     //设置图片水印的位置。
     img.setAbsolutePosition(235, 175);
     //开始水印
    for(int i = 1; i <= pageSize; i++) {
    PdfContentByte under = stamp.getUnderContent(i);
    under.addImage(img);
}

stamp.close();// 关闭   	      
 File tempfile = new File(InPdfFile);
//删除原文件。

if(tempfile.exists()) {

tempfile.delete();
 }

}
}
